Replication is a mechanism in which information held on one server, e.g., a directory server, is copied or replicated to one or more other servers, all of which provide access to the same set of information. Replication can be performed in various ways and based on different replication models. As examples, one replication model includes a master/slave model, while another model includes a multi-master model, each of which is described below.
In the master/slave replication model, a single server is the updateable master server, while the other servers are read-only slave servers. Although this model can assist in load-balancing heavily read-biased workloads, it is deficient in those environments that require highly available, workload-balanced read/write access to information in a directory. To address these needs, multi-master replication is employed.
With multi-master replication, multiple servers allow simultaneous write access to the same set of information by allowing each server to update its own copy of the set of information. Protocols are then used to transmit changes made at the different master servers to other master servers so that each server can update its copy of the information. Conflict resolution techniques are also used to workout differences resulting from simultaneous and/or conflicting updates made at multiple different master servers in the multi-master environment.
Although replication protocols have been established to manage the provision of changes made at multiple servers, enhancements are still needed. For example, a need still exists for a replication capability that provides the information in a simpler and more timely manner. As another example, a need still exists for a replication capability that avoids the need for conflict resolution at the time of providing the changed information.